package com.dhcc.DRGsHosp.web.controller;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.dayatang.utils.Page;
import org.openkoala.koala.commons.InvokeResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.dhcc.DRGsHosp.facade.DRGsFacade;
import com.dhcc.DRGsHosp.facade.dto.DRGsDTO;
import com.dhcc.DRGsHosp.facade.dto.IndexCalDTO;

@Controller("drgsHospWebController14")
@RequestMapping("/DRGs")
public class DRGsController {
		
	@Autowired
	private DRGsFacade dRGsFacade;
	
	@ResponseBody
	@RequestMapping("/add")
	public InvokeResult add(DRGsDTO dRGsDTO) {
		return dRGsFacade.creatDRGs(dRGsDTO);
	}
	
	@ResponseBody
	@RequestMapping("/update")
	public InvokeResult update(DRGsDTO dRGsDTO) {
		return dRGsFacade.updateDRGs(dRGsDTO);
	}
	
	@ResponseBody
	@RequestMapping("/pageJson")
	public Page pageJson(DRGsDTO dRGsDTO, @RequestParam int page, @RequestParam int pagesize) {
		Page<DRGsDTO> all = dRGsFacade.pageQueryDRGs(dRGsDTO, page, pagesize);
		return all;
	}
	
	@ResponseBody
	@RequestMapping("/delete")
	public InvokeResult remove(@RequestParam String drgCodes) {
		String[] value = drgCodes.split(",");
        String[] idArrs = new String[value.length];
        for (int i = 0; i < value.length; i ++) {
        					idArrs[i] = value[i];
			        				        }
        return dRGsFacade.removeDRGss(idArrs);
	}
	
	@ResponseBody
	@RequestMapping("/get/{drgCode}")
	public InvokeResult get(@PathVariable String drgCode) {
		return dRGsFacade.getDRGs(drgCode);
	}
	
		
    @InitBinder    
    public void initBinder(WebDataBinder binder) {  
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");    
        dateFormat.setLenient(false);    
        //CustomDateEditor 可以换成自己定义的编辑器。
        //注册一个Date 类型的绑定器 。
        binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE);
		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    }
    
    /**
     * @methodname    :findAllDRGs
     * @description   : 
     * @param         :
     * @author        :WangTeng
     * @return        :
     * @date          :2015年5月31日
     */
    @ResponseBody
	@RequestMapping(value = "/findAllDRGs", method = RequestMethod.POST)
	public InvokeResult findAllDRGs(DRGsDTO dto) {
		return InvokeResult.success(dRGsFacade.findAllDRGs(dto));
	}
    
    /**
     * @methodname    :getDrgsByParam
     * @description   : 
     * @param         :
     * @author        :lileizheng
     * @return        :
     * @date          :2015年5月19日
     */
    @ResponseBody
	@RequestMapping(value = "/getDrgsByParam", method = RequestMethod.POST)
	public InvokeResult getDrgsByParam(IndexCalDTO dto) {
		return dRGsFacade.getDrgsByParam(dto);
	}
}
